package poi_export;

import com.alibaba.excel.EasyExcel;
import org.junit.Test;
import poi_export.model.DemoData;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 官网： https://www.yuque.com/easyexcel/doc
 * github地址:https://github.com/alibaba/easyexcel
 */
public class EasyExcelTest {

    @Test
    public void dynamicHeadWrite() {
        // 文件输出位置
        String fileName = "test" + ".xlsx";
        EasyExcel.write(fileName)
                // 这里放入动态头
                .head(head())
                .sheet("Sheet1")
                // 当然这里数据也可以用 List<List<String>> 去传入
                .doWrite(data());
    }

    private List<List<String>> head() {
        List<List<String>> list = new ArrayList<List<String>>();
        List<String> head0 = new ArrayList<String>();
        head0.add("汇总");
        head0.add("字符串");
        List<String> head1 = new ArrayList<String>();
        head1.add("汇总");
        head1.add("数字");
        List<String> head2 = new ArrayList<String>();
        head2.add("汇总");
        head2.add("日期");


        List<String> head3 = new ArrayList<String>();
        head3.add("汇总");
        head3.add("字符串3");
        List<String> head4 = new ArrayList<String>();
        head4.add("汇总");
        head4.add("数字4");
        List<String> head5 = new ArrayList<String>();
        head5.add("汇总");
        head5.add("日期5");
        List<String> head6 = new ArrayList<String>();
        head6.add("汇总");
        head6.add("字符串6");
        List<String> head7 = new ArrayList<String>();
        head7.add("汇总");
        head7.add("数字7");
        List<String> head8 = new ArrayList<String>();
        head8.add("汇总");
        head8.add("日期8");
        List<String> head9 = new ArrayList<String>();
        head9.add("汇总");
        head9.add("字符串9");
        List<String> head10 = new ArrayList<String>();
        head10.add("汇总");
        head10.add("数字10");

        List<String> head11 = new ArrayList<String>();
        head11.add("汇总");
        head11.add("数字11");
        List<String> head12 = new ArrayList<String>();
        head12.add("汇总");
        head12.add("head12");
        List<String> head13 = new ArrayList<String>();
        head13.add("汇总");
        head13.add("数字13");
        List<String> head14 = new ArrayList<String>();
        head14.add("汇总");
        head14.add("数字14");
        List<String> head15 = new ArrayList<String>();
        head15.add("汇总");
        head15.add("数字15");
        List<String> head16 = new ArrayList<String>();
        head16.add("汇总");
        head16.add("数字16");

        list.add(head0);
        list.add(head1);
        list.add(head2);
        list.add(head3);
        list.add(head4);
        list.add(head5);
        list.add(head6);
        list.add(head7);
        list.add(head8);
        list.add(head9);
        list.add(head10);
        list.add(head11);
        list.add(head12);
        list.add(head13);
        list.add(head14);
        list.add(head15);
        list.add(head16);
        return list;
    }

    private List<DemoData> data() {
        List<DemoData> list = new ArrayList<DemoData>();
        for (int i = 0; i < 10; i++) {
            DemoData data = new DemoData();
            data.setString("字符串" + i);
            data.setDate(new Date());
            data.setDoubleData(0.56);
            data.setIgnore("ignore");
            list.add(data);

            data.setSt4(i + "");
            data.setSt5(i + "");
            data.setSt6(i + "");
            data.setSt7(i + "");
            data.setSt8(i + "");
            data.setSt9(i + "");
            data.setSt10(i + "");
            data.setSt11(i + "");
            data.setSt12(i + "");
            data.setSt13(i + "");
            data.setSt14(i + "");
            data.setSt15(i + "");
            data.setSt16(i + "");
        }
        return list;
    }

}
